The Wallet Factory allows for the creation of Sequence Wallets using the Factory contract, which generates child MinimalUpgradeableProxies that serve as the base code for all Sequence wallets.
_mainModule
.
No initialize code is executed.
Name | Type | Description |
---|---|---|
_mainModule | address | Initial implementation for the new proxy contract, expected to point to a valid Sequence wallet implementation with support for counter-factual initialization. |
_salt | bytes32 | Arbitrary value to be used as create2 salt. Sequence’s mainModule uses the salt to obtain a hash with the initial configuration for the wallet (See ImageHash). |
Name | Type | Description |
---|---|---|
_contract | address | Address of the created proxy contract. |
_mainModule
is a valid Sequence wallet implementation, or if _salt
is a valid Sequence configuration.Using invalid parameters will result on a proxy contract that may not be usable, and could result in loss of funds.mainModule
and salt
values will result in the same wallet address.
This property alongside the use of NanoUniversalDeployer or UniversalDeployer is the reason why Sequence wallets can obtain the same address on multiple chains.
deploy
function. Deploying the wallet is only
required before the first transaction is sent from the wallet.